package com.able.concurrency.t5;

import java.util.Queue;
import java.util.Scanner;
import java.util.concurrent.ConcurrentLinkedQueue;

/**
 * @author abel.he
 * @data 2018/10/29 14:25
 * @describe
 *
 * 练习：
 * 启动若干线程，并行访问同一个容器中的数据。保证获取容器中数据时没有数据错误，且线程安全。
 * 如：售票，秒杀等业务。
 * 
 */
public class Test91_concurrency {

    static Queue<String> queue = new ConcurrentLinkedQueue<String>();

    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    if (queue.size() > 0) {
                        System.out.println(queue.poll());
                    }
                }
            }
        }).start();

        while (true) {
            Scanner input = new Scanner(System.in);
            queue.offer(input.next());
        }



    }

}
